package com.aizuda.boot.modules.business.approval.entity.dto;


import io.swagger.v3.oas.annotations.media.Schema;
import jakarta.validation.constraints.NotBlank;
import jakarta.validation.constraints.NotNull;
import lombok.Data;

@Data
@Schema(description = "任务查询DTO")
public class TaskQueryDTO {

    @Schema(description = "用户ID", required = true)
    @NotNull(message = "用户ID不能为空")
    private Long userId;

    @Schema(description = "任务类型：PENDING-待办，COMPLETED-已办，CC-抄送", required = true)
    @NotBlank(message = "任务类型不能为空")
    private String taskType;

    @Schema(description = "节点ID，可选筛选条件")
    private Integer nodeId;

    @Schema(description = "合同类型ID，可选筛选条件")
    private Integer contractTypeId;

    @Schema(description = "合同编号，可选筛选条件")
    private String contractCode;

    @Schema(description = "合同名称，可选筛选条件")
    private String contractName;

    @Schema(description = "申请人ID，可选筛选条件")
    private Long applicantId;

    @Override
    public String toString() {
        return "TaskQueryDTO{" +
                "userId=" + userId +
                ", taskType='" + taskType + '\'' +
                ", nodeId=" + nodeId +
                ", contractTypeId=" + contractTypeId +
                ", contractCode='" + contractCode + '\'' +
                ", contractName='" + contractName + '\'' +
                ", applicantId=" + applicantId +
                '}';
    }
}
